/*

 Empresa desarrolladora: GuadalTEL S.A.

 Autor: Junta de AndalucÃ­a

 Derechos de explotaciÃ³n propiedad de la Junta de AndalucÃ­a.

 Ã‰ste programa es software libre: usted tiene derecho a redistribuirlo y/o modificarlo bajo los tÃ©rminos de la Licencia EUPL European Public License publicada 
 por el organismo IDABC de la ComisiÃ³n Europea, en su versiÃ³n 1.0. o posteriores.

 Ã‰ste programa se distribuye de buena fe, pero SIN NINGUNA GARANTÃ�A, incluso sin las presuntas garantÃ­as implÃ­citas de USABILIDAD o ADECUACIÃ“N A PROPÃ“SITO 
 CONCRETO. Para mas informaciÃ³n consulte la Licencia EUPL European Public License.

 Usted recibe una copia de la Licencia EUPL European Public License junto con este programa, si por algÃºn motivo no le es posible visualizarla, puede 
 consultarla en la siguiente URL: http://ec.europa.eu/idabc/servlets/Doc?id=31099

 You should have received a copy of the EUPL European Public License along with this program. If not, see http://ec.europa.eu/idabc/servlets/Doc?id=31096

 Vous devez avoir reÃ§u une copie de la EUPL European Public License avec ce programme. Si non, voir http://ec.europa.eu/idabc/servlets/Doc?id=31205

 Sie sollten eine Kopie der EUPL European Public License zusammen mit diesem Programm. Wenn nicht, finden Sie da 
 http://ec.europa.eu/idabc/servlets/Doc?id=29919

 */

//package es.juntadeandalucia.cice.pfirmav2.ws.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

public class Utils {

	private static Utils instance;

	public static synchronized Utils getInstance() {
		if (instance == null) {
			instance = new Utils();
		}
		return instance;
	}

	public Map<String, String> loadProperties() {
		Map<String, String> properties = new HashMap<String, String>();
		ResourceBundle resource = ResourceBundle.getBundle("ws");
		Enumeration<String> enumEtiq = resource.getKeys();
		while (enumEtiq.hasMoreElements()) {
			String clave = enumEtiq.nextElement();
			String valor = resource.getString(clave);
			properties.put(clave, valor);
		}
		resource = null;
		return properties;
	}

	public byte[] getBytesFromFile(String path) throws IOException {
		File file = new File(path);
		InputStream is = new FileInputStream(file);
		// Get the file size
		long length = file.length();
		// Create byte array to hold the data
		byte[] bytes = new byte[(int) length];
		// Read in bytes
		int offset = 0;
		int numRead = 0;
		while (offset < bytes.length
				&& (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
			offset += numRead;
		}
		// Ensure all the bytes have been read in
		if (offset < bytes.length) {
			throw new IOException("Could not completely read file "
					+ file.getName());
		}
		// Close input stream and return bytes
		is.close();
		return bytes;
	}
}
